home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 49 / Amiga Format CD49 (2000-01-17)(Future Publishing)(GB)(Track 1 of 3)[!][issue 2000-02].iso / -serious- / programming / e / lsestuff / libraries.e < prev    next >
Text File  |  1999-11-29  |  879b  |  50 lines

  1. OPT MODULE
  2.  
  3. MODULE '*xli'
  4.  
  5. OBJECT lib OF xni
  6. ENDOBJECT
  7.  
  8. EXPORT OBJECT libraries
  9.    PRIVATE
  10.    liblist:PTR TO xli
  11. ENDOBJECT
  12.  
  13. PROC libraries() OF libraries IS NEW self.liblist
  14.  
  15. PROC open(name, rev) OF libraries
  16.    DEF lib:PTR TO lib
  17.    NEW lib
  18.    lib.id := OpenLibrary(name, rev)
  19.    IF lib.id = NIL THEN RETURN NIL
  20.    self.liblist.addFirst(lib)
  21. ENDPROC lib.id
  22.  
  23. PROC close(base) OF libraries
  24.    DEF lib:PTR TO lib
  25.    lib := self.liblist.find(base)
  26.    IF lib = NIL THEN RETURN NIL
  27.    CloseLibrary(lib.id)
  28.    self.liblist.remove(lib)
  29.    END lib
  30. ENDPROC
  31.  
  32.  
  33. PROC end() OF libraries
  34.    self.clear()
  35.    END self.liblist
  36. ENDPROC
  37.  
  38. PROC clear() OF libraries
  39.    DEF cpobj:xli_CPObj
  40.    self.liblist.forEachCallProc({closeProc}, cpobj)
  41. ENDPROC
  42.  
  43. PROC closeProc(cpobj:PTR TO xli_CPObj)
  44.    DEF lib:PTR TO lib
  45.    lib := cpobj.node
  46.    CloseLibrary(lib.id)
  47.    cpobj.xli.remove(lib)
  48.    END lib
  49. ENDPROC
  50.